home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
WINMX Assorted Textfiles
/
Ebooks.tar
/
Text - Mathematics - Numerical Mathematics and Computing (F).zip
/
brthdy.f
< prev
next >
Wrap
Text File
|
2002-06-11
|
2KB
|
62 lines
C
C PAGE 352-354: NUMERICAL MATHEMATICS AND COMPUTING, CHENEY/KINCAID, 1985
C
C FILE: BRTHDY.FOR
C
C BIRTHDAY PROBLEM SIMULATION (PROB,BRTHDY,RANDOM)
C
C REPEATED BIRTHDAY PROBLEM - SUPPOSE THERE ARE N PEOPLE IN A ROOM.
C WHAT IS THE PROBABILITY THAT ANY TWO OF THESE PEOPLE WILL HAVE THE
C SAME BIRTHDAY. USING A RANDOM NUMBER GENERATOR TO SIMULATE
C BIRTHDAYS, THIS PROGRAM CALCULATES THE PROBABILITY OF REPEATED
C BIRTHDAYS
C
L = 256
DO 2 N = 5,55,5
IF(N .EQ. 25) THEN
DO 3 K = 22,23
VALUE = PROB(K,L)
PRINT *,'PROBABILITY AT', K,' IS ',VALUE
3 CONTINUE
END IF
VALUE = PROB(N,L)
PRINT *,'PROBABILITY AT ', N,' IS ',VALUE
2 CONTINUE
STOP
END
REAL FUNCTION PROB(N,L)
LOGICAL BRTHDY,COINCD
DATA M/1000/
SUM = 0.0
DO 2 I = 1,M
COINCD = BRTHDY(N,L)
IF (COINCD) SUM = SUM + 1.0
2 CONTINUE
PROB = SUM/REAL(M)
RETURN
END
LOGICAL FUNCTION BRTHDY(N,L)
LOGICAL DAYS(365)
DO 2 I = 1,365
DAYS(I) = .FALSE.
2 CONTINUE
DO 3 I = 1,N
NUMBER = 365.0*RANDOM(L) + 1.0
IF(DAYS(NUMBER)) THEN
BRTHDY = .TRUE.
RETURN
END IF
DAYS(NUMBER) = .TRUE.
3 CONTINUE
BRTHDY = .FALSE.
RETURN
END
FUNCTION RANDOM(L)
L = MOD(16807*L,2147483647)
RANDOM = REAL(L)*4.6566128752458E-10
RETURN
END